// 定义变量可以省略def
age = 18


// 闭包表达式
def sParameterLessClosure = "1 + 2 == ${-> 3}"
printf sParameterLessClosure

println "=================字符串===================="
// 字符串插值
def name = 'Guillaume' // a plain string
def greeting = "Hello ${name}"

// 三重双引号字符串
def name1 = 'Groovy'
def template = """
    Dear Mr ${name1},

    You're the winner of the lottery!

    Yours sincerly,

    Dave
"""
printf template

// 调用带参数的方法时可以省略括号
println "df"

// 断言
//assert age == 19


println "=================集合定义===================="
// list集合 使用[]来声明集合
def list = ["元素1", "元素2", "元素3"]
list.add("元素4")
list << "元素5" // groovy语法往集合添加数据
println list.getClass()

// 映射Map, 使用 [key:value] 方式定义
def map = [:]
map.put("email", "menin@163.com")
map.gender = "女"// groovy语法往集合添加数据,  .key 的方式
println map

// 不会抛出空指针异常，java会
age = null
println(age) // result： null